1. Field of the Invention
This invention relates generally to multiprocessor computer architecture and, more particularly, to a parallel microprocessor system and method for progressively executing interactive multi-tasking programs.
2. Description of the Related Art
Real-time program execution has been the subject of exhaustive investigation, and a large body of literature exists on the subject. The following references, for example, are illustrative of recent efforts in the field: A. Burns & A. Wellings, "Real Time Systems and Their Programming Languages", Addison-Wesley, 1990; H. W. Lawson, "Parallel Processing in Industrial Real-Time Applications", Prentice Hall, 1992; and S. V. Kanalopoulos, "MicroComputers in Real Time Processing of Information", 23rd Midwestern Symposium in Circuits and Systems, Aug. 4-5, 1980.
In the context of program execution theory, the term "real time" means that at some point in time during the evolution of an event, some computational process on that event takes place without introducing any delay to the evolution of the event. Such a concept is, of course, most often purely theoretical in that no presently available electronic or mechanical computation system is fast enough to process very fast phenomena or events with zero delay. However, in practical systems, "very fast" and "slow" are relative terms that serve to indicate a level of speed in relation to the processing rate at which a given system operates. As such, a practical real-time system may be defined as one which can process a continuous flow of information without any loss of information. Accordingly, in any practical real-time application, one must first determine the minimum acceptable delay that can be introduced into the system. For this purpose, a small periodic time interval of predetermined duration, called a quantum time window, is defined that represents or sets the criterion for real-time processing.
Multi-tasking is a methodology whereby a program is partitioned into tasks or routines and each routine is further partitioned into small activities. As the program runs, it executes one activity at a time, while jumping from routine to routine, until all routines are executed. If execution is fast enough, it is possible to approach the ideal of parallel control. It should be noted, however, that multitasking only satisfies real-time requirements under certain circumstances and, even when it does, it does not necessarily yield the most cost-effective and optimum implementation.
In parallel processing, the sum of the tasks or programs to be accomplished is partitioned into a number of modules that may each consist of a plurality of tasks. Each module defined in this manner is coded and corresponds to a program that is loaded into a corresponding processor. Hence, a parallel processor architecture contains at least as many processors as the number of modules. A parallel architecture, in terms purely of speed, is more efficient than a single processor. However, in a parallel processor architecture, as the number of processors increases, the cost increases, the reliability decreases, and the added overhead of maintenance and inter-processor communication increases. As such, the efficiency of a parallel processor system decreases in an inverse manner with increasing numbers of available processors.
Accordingly, it is an object of the present invention to provide a parallel processor architecture which is capable of fast processing speeds but which utilizes the lowest possible number of processors.
It is a further object of the present invention to provide a parallel processor architecture which is economical to manufacture, yet which provides increased efficiency, improved reliability, and lower maintenance costs.
It is also an object of the present invention to provide an interactive processing system - - - that is, a system in which the processors work interactively and in unison to execute in real-time.